/* ===== 生产级 CSS Reset v3.2 ===== */

/* 核心重置规则：应用全局基本样式 */
/* 选择所有元素、伪元素，包括首字母和首行 */
*,
*::before,
*::after,
*::first-letter,
*::first-line {
    box-sizing: border-box;
    /* 统一盒模型计算方式（包含 padding 和 border） */
    background-repeat: no-repeat;
    /* 防止背景图案意外重复 */
    min-width: 0;
    /* 解决 Flex/Grid 子项溢出问题 */
    min-height: 0;
    /* 防止内容截断导致的布局异常 */
}

/* HTML 根元素基础设置 */
:where(html) {
    /* 使用 :where() 降低选择器权重至 0 */
    -webkit-text-size-adjust: 100%;
    /* 禁止 iOS 横屏时字号放大 */
    -webkit-tap-highlight-color: transparent;
    /* 移除移动端点击高亮 */
    -webkit-font-smoothing: antialiased;
    /* Mac 字体抗锯齿渲染 */
    text-size-adjust: 100%;
    /* 全局字号调整保护 */
    text-rendering: optimizelegibility;
    /* 优化文字可读性 */
    line-height: 1.5;
    /* 无单位值继承，基准行高 */
    tab-size: 2;
    /* 代码缩进宽度（2空格） */
    block-size: 100%;
    /* 逻辑属性替代 height: 100% */
}

/* Body 基础设置 */
:where(body) {
    margin: 0;
    /* 移除默认外边距 */
    min-block-size: 100%;
    /* 逻辑属性替代 min-height: 100% */
    overflow-x: hidden;
    /* 防止横向溢出导致滚动条 */
    overflow-y: scroll;
    /* 强制显示垂直滚动条避免布局跳动 */
    -webkit-font-smoothing: subpixel-antialiased;
    /* Win 字体清晰渲染 */
}

/* 媒体元素标准化 */
:where(img, picture, video, canvas, svg) {
    display: block;
    /* 消除行内元素底部间隙 */
    max-inline-size: 100%;
    /* 逻辑属性替代 max-width: 100% */
    block-size: auto;
    /* 保持原始宽高比 */
    font-style: italic;
    /* 图片加载失败时的备用文本样式 */
}

/* 交互元素重置 */
:where(input, button, textarea, select) {
    appearance: none;
    /* 移除原生外观 */
    color: inherit;
    /* 继承父级文本颜色 */
    font: inherit;
    /* 继承父级字体设置 */
    background: transparent;
    /* 清除默认背景 */
    border-radius: 0;
    /* 移除默认圆角 */
}

/* 按钮类元素增强 */
:where(button, [role="button"], [type="button"], [type="reset"], [type="submit"]) {
    cursor: pointer;
    /* 统一指针样式 */
    touch-action: manipulation;
    /* 优化触控响应速度（取消 300ms 延迟） */
    user-select: none;
    /* 防止按钮文字被选中 */
}

/* 排版系统重置 */
:where(h1, h2, h3, h4, h5, h6, p, figure, pre, dl, dd) {
    margin: 0;
    /* 清除标题和段落默认外边距 */
}

/* 列表元素重置 */
:where(ul[role='list'], ol[role='list']) {
    list-style: none;
    /* 移除默认列表符号 */
    padding: 0;
    /* 清除默认内边距 */
}

/* 表格系统优化 */
:where(table) {
    border-collapse: collapse;
    /* 合并相邻边框 */
    border-spacing: 0;
    /* 清除单元格间距 */
    table-layout: fixed;
    /* 提升表格渲染性能 */
}

/* 无障碍优化：运动控制 */
@media (prefers-reduced-motion: no-preference) {
    :where(html) {
        scroll-behavior: smooth;
        /* 启用平滑滚动 */
        scroll-padding-block-start: 1rem;
        /* 避免固定导航栏遮挡内容 */
    }
}

/* 隐藏元素处理 */
:where([hidden], [aria-hidden="true"], .visually-hidden) {
    display: none !important;
    /* 强制隐藏元素（同时处理 aria 状态） */
}

/* 现代布局防护（支持动态视口单位） */
@supports (min-block-size: 100dvb) {
    :where(html, body) {
        block-size: 100dvb;
        /* 使用动态视口单位（Device Viewport Block） */
    }
}